package com.wsoft.bpm.service;

import org.activiti.engine.task.Task;

import java.util.List;

/**
 * 动态用户服务类
 *
 * @Author zhonglj
 * @Date 2024/12/5 14:43
 */
public interface DynamicUserTaskService {
    /**
     * 动态添加串行审批流
     *
     * @param originTaskId      流程定义上的原始任务id
     * @param dynamicAssignList
     * @param taskName          任务名称
     * @return void
     * @author zhonglj
     * @date 2024/12/6 9:35
     **/
    void addDynamicSerialNode(String originTaskId, List<String> dynamicAssignList, String taskName);

    /**
     * 动态添加并行审批流
     *
     * @param originTaskId      流程定义上的原始任务id
     * @param sourceTaskId      来源任务id
     * @param dynamicAssignList
     * @param type
     * @param taskName          任务名称
     * @return void
     * @author zhonglj
     * @date 2024/12/6 9:35
     **/
    void addDynamicParallelNode(String originTaskId, String sourceTaskId, List<String> dynamicAssignList, String type, String taskName);

    /**
     * 串行同意
     *
     * @param currentTask
     * @param comment
     * @return void
     * @author zhonglj
     * @date 2024/12/6 9:36
     **/
    void serialAgree(Task currentTask, String comment);

    /**
     * 并行同意
     *
     * @param currentTask
     * @param comment
     * @return void
     * @author zhonglj
     * @date 2024/12/6 9:36
     **/
    void parallelAgree(Task currentTask, String comment);

    /**
     * 串行拒绝
     *
     * @param currentTask
     * @param comment
     * @return void
     * @author zhonglj
     * @date 2024/12/6 9:36
     **/
    void serialRefuse(Task currentTask, String comment);

    /**
     * 并行拒绝
     *
     * @param currentTask
     * @param comment
     * @return void
     * @author zhonglj
     * @date 2024/12/6 9:36
     **/
    void parallelRefuse(Task currentTask, String comment);
}
